import { fileURLToPath, URL } from "node:url";

import { defineConfig } from "vite";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
import vue from "@vitejs/plugin-vue";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
  server: {
    proxy: {
      // 匹配所有以 `/api` 开头的请求路径
      "/api": {
        // 目标后端地址（代理转发到的真实后端）
        target: "http://127.0.0.1:9996",
        // 允许跨域（默认 true，可省略）
        changeOrigin: true,
        // 自定义路径重写逻辑（可在此打印原始路径和重写后路径）
        rewrite: (path) => {
          const originalPath = path; // 原始路径（如 `/api/user/sendCode`）
          const rewrittenPath = path.replace(/^\/api/, ""); // 重写后路径（如 `/user/sendCode`）

          // 打印日志（控制台会输出）
          console.log("[Vite Proxy] 原始路径:", originalPath);
          console.log("[Vite Proxy] 重写后路径:", rewrittenPath);

          return rewrittenPath; // 返回重写后的路径
        },
        // 代理请求发送前的钩子（可在此打印最终代理的路径）
        onProxyReq: (proxyReq, req, res) => {
          // proxyReq.path 是最终代理到后端的路径（即重写后的路径）
          console.log("[Vite Proxy] 最终代理路径:", proxyReq.path);
        },
      },
    },
  },
});
